C++ Expression Templates Performance Issues in Scientific Computing

نویسندگان

  • Federico Bassetti
  • Kei Davis
  • Daniel J. Quinlan
چکیده

Ever-increasing size and complexity of software applications and libraries in parallel scientific computing is making implementation in the programming languages traditional for this field—FORTRAN 77 and C—impractical. The major impediment to the progression to a higher-level language such as C++ is attaining FORTRAN 77 or C performance, which is considered absolutely necessary by many practitioners. The use of template metaprogramming in C++, in the form of so-called expression templates to generate custom C++ code, holds great promise for getting C performance from C++ in the context of operations on array-like objects. Several sophisticated expression template implementations of parallel array-class libraries exist, and in certain circumstances their promise of performance is realized. Unfortunately this is not uniformly the case; this paper explores the major reasons for this. A more complete version of this paper may be obtained from http://www.c3.lanl.gov/ ̃kei/ipps98.html.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Expression Templates Revisited: A Performance Analysis of Current Methodologies

In the last decade, expression templates (ETs) have gained a reputation as an efficient performance optimization tool for C++ codes. This reputation builds on several ET-based linear algebra frameworks focused on combining both elegant and high-performance C++ code. However, on closer examination the assumption that ETs are a performance optimization technique cannot be maintained. In this pape...

متن کامل

Performance Portability Strategies for Grid C++ Expression Templates

One of the key requirements for the Lattice QCD Application Development as part of the US Exascale Computing Project is performance portability across multiple architectures. Using the Grid C++ expression template as a starting point, we report on the progress made with regards to the Grid GPU offloading strategies. We present both the successes and issues encountered in using CUDA, OpenACC and...

متن کامل

A New Vectorization Technique for Expression Templates in C++

Vector operations play an important role in high performance computing and are typically provided by highly optimized libraries that implement the Basic Linear Algebra Subprograms (BLAS) interface. In C++ templates and operator overloading allow the implementation of these vector operations as expression templates which construct custom loops at compile time and providing a more abstract interf...

متن کامل

A new look at expression templates for matrix computation

plates—has emerged. This approach bypasses many of the temporary objects and leads to elegant code that’s competitive with traditional implementations in C or Fortran. Such mathematical syntax is particularly attractive in matrix computations, as indicated by the success of Matlab and its freeware variants. Overloaded operators let programmers implement algorithms in syntax very similar to the ...

متن کامل

A Comparison of Performance - EnhancingStrategies for Parallel NumericalObject - Oriented

Performance short of that of C or FORTRAN 77 is a signii-cant obstacle to general acceptance of object-oriented C++ frameworks in high-performance parallel scientiic computing; nonetheless, their value in simplifying complex computations is inarguable. Examples of good performance for object-oriented libraries/frameworks are interesting, but a systematic analysis of performance issues has not b...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1998